// pages/addressAdd/aindex.js
import WxValidate from "../../../util/WxValidate";
import { tips, confirm, coludRequest } from '../../../util/util.js' 

Page({
  
  /**
   * 页面的初始数据
   */
  data: {
    check:false,  //男
    check1:true,  //女
    list:[],
    phoneNumber:"",
    Name:"",
    address:"",
    DetailAddress:"",
    AddressId:null
  },
  //操作数据
  submitForm(event){
    let that=this;
    if( that.data.AddressId!=null){
        //id有时显示 按钮事件为修改数据
        console.log(that.data.AddressId);
        //根据id和传入值修改数据
        let params=event.detail.value;
        //删除收到数据的空格   
        params.Name=params.Name.replace(/\s+/g, '')
        params.phoneNumber=params.phoneNumber.replace(/\s+/g, '')
        params.address=params.address.replace(/\s+/g, '')
        //调用验证数据的方法
        var b= this.Verification(params)
        //验证通过后开始修改数据
        if(b){
          var sex=that.data.check==true?"男":that.data.check1==true?"女":"无";
          params.sex=sex;
          //根据id 找到数据 然后修该
          coludRequest('admin',{module:'UserAddress',action:'update',id:that.data.AddressId,params:{Address:params.address,
            DetailAddress:params.detailAddress,
            Gender:params.sex,
            Name:params.Name,
            PhoneNumber:params.phoneNumber}},function(res){
            tips('修改地址成功')
            setTimeout(res => {
              wx.reLaunch({
                url: '/pages/my/address/aindex',
              }) 
            }, 1200)
          })
        }
        //添加数据
    }else{
        //id没有时显示 按钮事件为添加数据
        that.addressCreate(event);
    }
  },
  //验证数据
  Verification:function(params){
    //判断是否有错误
    var that=this;
    if(!that.WxValidate.checkForm(params)){
      //表单元素验证不通过，此处给出相应提示
      let error=that.WxValidate.errorList[0];
      switch (error.param){
        case "Name":
          tips(error.msg)
          break;
        case "phoneNumber":
          tips(error.msg)
          break;
        case "address":
          tips(error.msg)
          break;
        default :
        tips('请填写完整')
          break;
      }
      return false;
    }
    return true
  },
  //添加数据
  addressCreate:function(e){
    var that=this;
    let params=e.detail.value;
    //删除收到数据的空格   
    params.Name=params.Name.replace(/\s+/g, '')
    params.phoneNumber=params.phoneNumber.replace(/\s+/g, '')
    params.address=params.address.replace(/\s+/g, '')
    //调用验证数据的方法
    var b= this.Verification(params)
    if(b){
      var sex=that.data.check==true?"男":that.data.check1==true?"女":"无";
      params.sex=sex;
      //获取openid
      wx.cloud.callFunction({
        name:'login',
        success:res=>{
          params.openId=res.result.userInfo.openId;
           //数据验证通过后开始添加数据
          coludRequest('admin',{module:'UserAddress',action:'add',params:{
            Address:params.address,
            DetailAddress:params.detailAddress,
            Gender:params.sex,
            Name:params.Name,
            PhoneNumber:params.phoneNumber,
            openId:params.openId
          }},function(res){
            tips('添加地址成功');
            //成功后跳转页面
            setTimeout(() => {
              wx.navigateTo({
                url: '/pages/my/address/aindex',
              })
            }, 1200);
  
          })
        }
      })
    }else{
      return false;
    }
    
  },
  rad:function(e){   
    this.setData({
      check: !this.data.check,
      check1: !this.data.check1
     })
    console.log("用户打勾的是 ",this.data.check)
  },  
  //自动定位
  chooseMapViewTap:function(){
    var that=this
    wx.getLocation({
      type:'gcj02', //返回可以用于wx.openLocation的经纬度
      success:function(res){
        console.log(res);
        wx.chooseLocation({
          latitude: res.latitude,
          longitude: res.longitude,
          success:res=>{
            that.setData({
                address:res.name
            })
            console.log(res);
          },
          fail:err=>{
             console.log('获取失败');
          }
        })
      }
    })
  },
  //验证数据的方法
  initValidate() {
    let rules = {
      Name: {
        required: true,
        maxlength: 10
      },
      phoneNumber: {
        required: true,
        tel: true
      },
      address:{
        required: true
      }
    }

    let message = {
      Name: {
        required: '请输入收货人',
        maxlength: '名字不能超过10个字'
      },
      phoneNumber: {
        required: '请输入手机号',
        tel: '请输入正确的手机号'
      },
      address: {
        required: '请选择地址',
      }
    }
    //实例化当前的验证规则和提示消息
    this.WxValidate = new WxValidate(rules, message);
  } ,
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    //加载验证方法
    this.initValidate();
    var that=this;
    //获取id
    if(options.id!=null){
      that.setData({
        AddressId:options.id
      })
      //根据id获取用户数据 并绑定到相应的数据上
      coludRequest('admin',{module:'UserAddress',action:'query',map:{_id:options.id}},function(res){
        //男女选中
         if(res.result.data[0].Gender=='男'){
          that.setData({
            check:true,
            check1:false
          })
         }else{
          that.setData({
            check:false,
            check1:true
          })
         }
         that.setData({
           Name:res.result.data[0].Name,
           phoneNumber:res.result.data[0].PhoneNumber,
           address:res.result.data[0].Address,
           DetailAddress:res.result.data[0].DetailAddress,
         })
         console.log(res)
      })
    }else{
      
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})